A virtual machine is an emulation of a computer. The emulation may be implemented in hardware, software or a combination of hardware and software. A virtual machine may provide functionality to execute an operating system. A hypervisor enables multiple computing environments to share the same physical machine.
Virtual machines may be nested. That is, one virtual machine may be executed within another virtual machine. This may be done for security and/or ease of deployment.
A virtual machine uses a virtual address space. At some point, addresses in a virtual address space need to be translated into physical memory addresses. Conventionally, this address translation is performed using pages tables. One consequence of nested virtual machines is that each page translation must go through multiple page tables within each virtual machine layer, greatly increasing translation cost. This multi-layer translation process reduces the performance. Thus, there is a need for a faster address translation mechanism.